"""
角色数据库模型
"""
from tortoise import fields, Model


class Role(Model):
    """角色表"""
    # pk: primary key, 主键 , unique: 唯一, index: 索引, generated: 自动生成
    role_id = fields.CharField(pk=True, max_length=50, unique=True, index=True, generated=False, description="角色ID")
    role_name = fields.CharField(max_length=50, unique=True, description="角色名称")
    created_at = fields.DatetimeField(auto_now_add=True, description="创建时间")
    updated_at = fields.DatetimeField(auto_now=True, description="更新时间")
    
    # 反向关系将由 Tortoise ORM 自动创建
    # users: fields.ReverseRelation["User"]

    class Meta(Model.Meta):
        table = "roles"
        description = "角色表"
        ordering = ["created_at"]  # 按照创建时间升序排序

    def __str__(self):
        return f"(role_id={self.role_id}, role_name={self.role_name})"

